home *** CD-ROM | disk | FTP | other *** search
/ PC Media 3 / PC MEDIA CD03.iso / share / udos / pgp20 / pgpdoc1.doc < prev    next >
Encoding:
Text File  |  1992-09-02  |  78.2 KB  |  1,634 lines

  1.  
  2.  
  3.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 1
  4.  
  5.  
  6.  
  7.  
  8.                           Phil's Pretty Good Software
  9.                                     Presents
  10.       
  11.                                       ===
  12.                                       PGP
  13.                                       ===
  14.       
  15.                               Pretty Good Privacy
  16.                       Public Key Encryption for the Masses
  17.       
  18.       
  19.                            --------------------------
  20.                                 PGP User's Guide
  21.                            Volume I: Essential Topics
  22.                            --------------------------
  23.                               by Philip Zimmermann
  24.                                 Revised 1 Sep 92
  25.       
  26.       
  27.                            PGP Version 2.0 - 1 Sep 92
  28.                               Software Written by
  29.                                Philip Zimmermann
  30.                                       with
  31.                 Hal Finney, Branko Lankester, and Peter Gutmann
  32.       
  33.       
  34.       
  35.       
  36.      Synopsis:  PGP uses public-key encryption to protect E-mail and data
  37.      files.  Communicate securely with people you've never met, with no
  38.      secure channels needed for prior exchange of keys.  PGP is well
  39.      featured and fast, with sophisticated key management, digital
  40.      signatures, data compression, and good ergonomic design.
  41.       
  42.       
  43.      Software and documentation (c) Copyright 1990-1992 Philip Zimmermann. 
  44.      For information on PGP licensing, distribution, copyrights, patents,
  45.      trademarks, liability limitations, and export controls, see the
  46.      "Legal Issues" section in the "PGP User's Guide, Volume II: Special
  47.      Topics".
  48.       
  49.       
  50.  
  51.  
  52.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 2
  53.  
  54.  
  55.  
  56.  
  57.       
  58.      Contents
  59.      ========
  60.       
  61.      Quick Overview
  62.      Why Do You Need PGP?
  63.      How it Works
  64.      Installing PGP
  65.      How to Use PGP
  66.        To See a Usage Summary
  67.        Encrypting a Message
  68.        Signing a Message
  69.        Signing and then Encrypting
  70.        Using Just Conventional Encryption
  71.        Decrypting and Checking Signatures
  72.        Managing Keys
  73.          RSA Key Generation
  74.          Adding a Key to Your Key Ring
  75.          Removing a Key from Your Key Ring
  76.          Extracting (copying) a Key from Your Key Ring
  77.          Viewing the Contents of Your Key Ring
  78.          How to Protect Public Keys from Tampering
  79.          How Does PGP Keep Track of Which Keys are Valid?
  80.          How to Protect Secret Keys from Disclosure
  81.          Revoking a Public Key
  82.      Advanced Topics
  83.        Sending Ciphertext Through E-mail Channels: Radix-64 Format
  84.        Environmental Variable for Path Name
  85.        Setting Configuration Parameters: CONFIG.TXT
  86.      Vulnerabilities
  87.      Trusting Snake Oil
  88.      PGP Quick Reference
  89.      Legal Issues
  90.      Acknowledgments
  91.      About the Author
  92.       
  93.       
  94.  
  95.  
  96.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 3
  97.  
  98.  
  99.  
  100.  
  101.       
  102.      Quick Overview
  103.      =============
  104.       
  105.      Pretty Good(tm) Privacy (PGP), from Phil's Pretty Good Software, is a
  106.      high security cryptographic software application for MSDOS, Unix,
  107.      VAX/VMS, and other computers.  PGP allows people to exchange files or
  108.      messages with privacy, authentication, and convenience.  Privacy
  109.      means that only those intended to receive a message can read it. 
  110.      Authentication means that messages that appear to be from a
  111.      particular person can only have originated from that person. 
  112.      Convenience means that privacy and authentication are provided
  113.      without the hassles of managing keys associated with conventional
  114.      cryptographic software.  No secure channels are needed to exchange
  115.      keys between users, which makes PGP much easier to use.  This is
  116.      because PGP is based on a powerful new technology called "public key"
  117.      cryptography.  
  118.       
  119.      PGP combines the convenience of the Rivest-Shamir-Adleman (RSA)
  120.      public key cryptosystem with the speed of conventional cryptography,
  121.      message digests for digital signatures, data compression before
  122.      encryption, good ergonomic design, and sophisticated key management. 
  123.      And PGP performs the public-key functions faster than most other
  124.      software implementations.  PGP is public key cryptography for the
  125.      masses.
  126.       
  127.      PGP does not provide any built-in modem communications capability. 
  128.      You must use a separate software product for that.
  129.       
  130.      This document, "Volume I: Essential Topics", only explains the
  131.      essential concepts for using PGP, and should be read by all PGP
  132.      users.  "Volume II: Special Topics" covers the advanced features of
  133.      PGP and other special topics, and may be read by more serious PGP
  134.      users.  Neither volume explains the underlying technology details of
  135.      cryptographic algorithms and data structures.  
  136.       
  137.       
  138.  
  139.  
  140.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 4
  141.  
  142.  
  143.  
  144.  
  145.       
  146.      Why Do You Need PGP?
  147.      ====================
  148.       
  149.      It's personal.  It's private.  And it's no one's business but yours.
  150.      You may be planning a political campaign, discussing your taxes, or
  151.      having an illicit affair.  Or you may be doing something that you
  152.      feel shouldn't be illegal, but is.  Whatever it is, you don't want
  153.      your private electronic mail (E-mail) or confidential documents read
  154.      by anyone else.  There's nothing wrong with asserting your privacy. 
  155.      Privacy is as apple-pie as the Constitution.  
  156.       
  157.      Perhaps you think your E-mail is legitimate enough that encryption is
  158.      unwarranted.  If you really are a law-abiding citizen with nothing to
  159.      hide, then why don't you always send your paper mail on postcards? 
  160.      Why not submit to drug testing on demand?  Why require a warrant for
  161.      police searches of your house?  Are you trying to hide something? 
  162.      You must be a subversive or a drug dealer if you hide your mail
  163.      inside envelopes.  Or maybe a paranoid nut.  Do law-abiding citizens
  164.      have any need to encrypt their E-mail?
  165.       
  166.      What if everyone believed that law-abiding citizens should use
  167.      postcards for their mail?  If some brave soul tried to assert his
  168.      privacy by using an envelope for his mail, it would draw suspicion. 
  169.      Perhaps the authorities would open his mail to see what he's hiding. 
  170.      Fortunately, we don't live in that kind of world, because everyone
  171.      protects most of their mail with envelopes.  So no one draws suspicion
  172.      by asserting their privacy with an envelope.  There's safety in
  173.      numbers.  Analogously, it would be nice if everyone routinely used
  174.      encryption for all their E-mail, innocent or not, so that no one drew
  175.      suspicion by asserting their E-mail privacy with encryption.  Think
  176.      of it as a form of solidarity.
  177.       
  178.      Today, if the Government wants to violate the privacy of ordinary
  179.      citizens, it has to expend a certain amount of expense and labor to
  180.      intercept and steam open and read paper mail, and listen to and
  181.      possibly transcribe spoken telephone conversation.  This kind of
  182.      labor- intensive monitoring is not practical on a large scale.  This
  183.      is only done in important cases when it seems worthwhile. 
  184.       
  185.      More and more of our private communications are being routed through
  186.      electronic channels.  Electronic mail will gradually replace
  187.      conventional paper mail.  E-mail messages are just too easy to
  188.      intercept and scan for interesting keywords.  This can be done
  189.      easily, routinely, automatically, and undetectably on a grand scale. 
  190.      International cablegrams are already scanned this way on a large
  191.      scale by the NSA. 
  192.       
  193.      We are moving toward a future when the nation will be crisscrossed
  194.      with high capacity fiber optic data networks linking together all our
  195.      increasingly ubiquitous personal computers.  E-mail will be the norm
  196.      for everyone, not the novelty it is today.  Perhaps the Government
  197.      will protect our E-mail with Government-designed encryption 
  198.      algorithms.  Probably most people will trust that.  But perhaps some
  199.      people will prefer their own protective measures.
  200.       
  201.  
  202.  
  203.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 5
  204.  
  205.  
  206.  
  207.  
  208.      Senate Bill 266, a 1991 omnibus anti-crime bill, had an unsettling
  209.      measure buried in it.  If this non binding resolution had become real
  210.      law, it would have forced manufacturers of secure communications
  211.      equipment to insert special "trap doors" in their products, so that
  212.      the Government can read anyone's encrypted messages.  It reads:  "It
  213.      is the sense of Congress that providers of electronic communications
  214.      services and manufacturers of electronic communications service
  215.      equipment shall insure that communications systems permit the
  216.      Government to obtain the plain text contents of voice, data, and
  217.      other communications when appropriately authorized by law."  This
  218.      measure was defeated after rigorous protest from civil libertarians
  219.      and industry groups.  But the Government has since introduced other
  220.      legislation to work toward similar objectives.
  221.       
  222.      If privacy is outlawed, only outlaws will have privacy.  Intelligence
  223.      agencies have access to good cryptographic technology.  So do the big
  224.      arms and drug traffickers.  So do defense contractors, oil companies,
  225.      and other corporate giants.  But ordinary people and grassroots
  226.      political organizations mostly have not had access to affordable
  227.      "military grade" public-key cryptographic technology.  Until now.
  228.       
  229.      PGP enables people to take their privacy into their own hands.  
  230.      There's a growing social need for it.  That's why I wrote it.
  231.       
  232.       
  233.  
  234.  
  235.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 6
  236.  
  237.  
  238.  
  239.  
  240.       
  241.      How it Works
  242.      ============
  243.       
  244.      It would help if you were already familiar with the concept of
  245.      cryptography in general and public key cryptography in particular. 
  246.      Nonetheless, here are a few introductory remarks about public key
  247.      cryptography.
  248.       
  249.      First, some terminology.  Suppose I want to send you a message, but I
  250.      don't want anyone but you to be able to read it.  I can "encrypt", or
  251.      "encipher" the message, which means I scramble it up in a hopelessly
  252.      complicated way, rendering it unreadable to anyone except you, the
  253.      intended recipient of the message.  I supply a cryptographic "key" to
  254.      encrypt the message, and you have to use the same key to decipher or
  255.      "decrypt" it.  At least that's how it works in conventional
  256.      "single-key" cryptosystems.
  257.       
  258.      In conventional cryptosystems, such as the US Federal Data Encryption
  259.      Standard (DES), a single key is used for both encryption and
  260.      decryption.  This means that a key must be initially transmitted via
  261.      secure channels so that both parties can know it before encrypted
  262.      messages can be sent over insecure channels.  This may be
  263.      inconvenient.  If you have a secure channel for exchanging keys, then
  264.      why do you need cryptography in the first place?
  265.       
  266.      In public key cryptosystems, everyone has two related complementary
  267.      keys, a publicly revealed key and a secret key.  Each key unlocks the
  268.      code that the other key makes.  Knowing the public key does not help
  269.      you deduce the corresponding secret key.  The public key can be
  270.      published and widely disseminated across a communications network.
  271.      This protocol provides privacy without the need for the same kind of
  272.      secure channels that a conventional cryptosystem requires.
  273.       
  274.      Anyone can use a recipient's public key to encrypt a message to that
  275.      person, and that recipient uses her own corresponding secret key to
  276.      decrypt that message.  No one but the recipient can decrypt it,
  277.      because no one else has access to that secret key.  Not even the
  278.      person who encrypted the message can decrypt it.  
  279.       
  280.      Message authentication is also provided.  The sender's own secret key
  281.      can be used to encrypt a message, thereby "signing" it.  This creates
  282.      a digital signature of a message, which the recipient (or anyone
  283.      else) can check by using the sender's public key to decrypt it.  This
  284.      proves that the sender was the true originator of the message, and
  285.      that the message has not been subsequently altered by anyone else,
  286.      because the sender alone possesses the secret key that made that
  287.      signature.  Forgery of a signed message is infeasible, and the sender
  288.      cannot later disavow his signature. 
  289.       
  290.      These two processes can be combined to provide both privacy and
  291.      authentication by first signing a message with your own secret key,
  292.      then encrypting the signed message with the recipient's public key. 
  293.      The recipient reverses these steps by first decrypting the message
  294.      with her own secret key, then checking the enclosed signature with
  295.      your public key.  These steps are done automatically by the
  296.  
  297.  
  298.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 7
  299.  
  300.  
  301.  
  302.  
  303.      recipient's software.
  304.       
  305.      Because the public key encryption algorithm is much slower than
  306.      conventional single-key encryption, encryption is better accomplished
  307.      by using a high-quality fast conventional single-key encryption
  308.      algorithm to encipher the message.  This original unenciphered
  309.      message is called "plaintext".  In a process invisible to the user, a
  310.      temporary random key, created just for this one "session", is used to
  311.      conventionally encipher the plaintext file.  Then the recipient's
  312.      public key is used to encipher this temporary random conventional
  313.      key.  This public-key-enciphered conventional "session" key is sent
  314.      along with the enciphered text (called "ciphertext") to the
  315.      recipient.  The recipient uses her own secret key to recover this
  316.      temporary session key, and then uses that key to run the fast
  317.      conventional single-key algorithm to decipher the large ciphertext 
  318.      message.
  319.       
  320.      Public keys are kept in individual "key certificates" that include
  321.      the key owner's user ID (which is that person's name), a timestamp of
  322.      when the key pair was generated, and the actual key material.  Public
  323.      key certificates contain the public key material, while secret key
  324.      certificates contain the secret key material.  Each secret key is
  325.      also encrypted with its own password, in case it gets stolen.  A key
  326.      file, or "key ring" contains one or more of these key certificates. 
  327.      Public key rings contain public key certificates, and secret key
  328.      rings contain secret key certificates.  
  329.       
  330.      The keys are also internally referenced by a "key ID", which is an 
  331.      "abbreviation" of the public key (the least significant 64 bits of 
  332.      the large public key).  When this key ID is displayed, only the lower
  333.      24 bits are shown for further brevity.  While many keys may share the
  334.      same user ID, for all practical purposes no two keys share the same
  335.      key ID.  
  336.       
  337.      PGP uses "message digests" to form signatures.  A message digest is a
  338.      128-bit cryptographically strong one-way hash function of the
  339.      message.  It is somewhat analogous to a "checksum" or CRC error
  340.      checking code, in that it compactly "represents" the message and is
  341.      used to detect changes in the message.  Unlike a CRC, however, it is
  342.      computationally infeasible for an attacker to devise a substitute
  343.      message that would produce an identical message digest.  The message
  344.      digest gets encrypted by the secret key to form a signature.  
  345.       
  346.      Documents are signed by prefixing them with signature certificates,
  347.      which contain the key ID of the key that was used to sign it, a
  348.      secret-key-signed message digest of the document, and a timestamp of
  349.      when the signature was made.  The key ID is used by the receiver to
  350.      look up the sender's public key to check the signature.  The
  351.      receiver's software automatically looks up the sender's public key
  352.      and user ID in the receiver's public key ring.
  353.       
  354.      Encrypted files are prefixed by the key ID of the public key used to
  355.      encrypt them.  The receiver uses this key ID message prefix to look
  356.      up the secret key needed to decrypt the message.  The receiver's 
  357.      software automatically looks up the necessary secret decryption key 
  358.      in the receiver's secret key ring.
  359.  
  360.  
  361.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 8
  362.  
  363.  
  364.  
  365.  
  366.       
  367.      These two types of key rings are the principal method of storing and
  368.      managing public and secret keys.  Rather than keep individual keys in
  369.      separate key files, they are collected in key rings to facilitate the
  370.      automatic lookup of keys either by key ID or by user ID.  Each user
  371.      keeps his own pair of key rings.  An individual public key is
  372.      temporarily kept in a separate file long enough to send to your
  373.      friend who will then add it to her key ring.
  374.       
  375.       
  376.       
  377.      Installing PGP
  378.      ==============
  379.       
  380.      If you already have PGP version 1.0 for MSDOS, you should first
  381.      rename the old executable file pgp1.exe.  This is so that you can run
  382.      your new version of PGP by typing "pgp" without conflicting with the
  383.      old version.  You can still run the old version of PGP by typing
  384.      "pgp1".
  385.       
  386.      To install PGP on your MSDOS system, you just have to copy it into a
  387.      suitable directory on your hard disk (like C:\PGP), and use the
  388.      shareware PKUNZIP utility to decompress it from the compressed
  389.      archive PGP release file, called PGP20.ZIP.  For best results, you
  390.      will also modify your AUTOEXEC.BAT file, as described elsewhere in
  391.      this manual, but you can do that later, after you've played with PGP
  392.      a bit and read more of this manual.
  393.       
  394.      Installing on Unix and VAX/VMS is generally similar to installing on
  395.      MSDOS, but you may have to compile the source code first.  A Unix
  396.      makefile is provided with the source release for this purpose.  
  397.       
  398.      For further details on installation, see the separate PGP
  399.      Installation Guide, in the file SETUP.DOC included with this
  400.      release.  It fully describes how to set up the PGP directory and your
  401.      AUTOEXEC.BAT file and how to use PKUNZIP to install it.
  402.       
  403.       
  404.       
  405.      How to Use PGP
  406.      ==============
  407.       
  408.       
  409.      To See a Usage Summary
  410.      ----------------------
  411.       
  412.      To see a quick command usage summary for PGP, just type:
  413.       
  414.          pgp -h
  415.       
  416.       
  417.       
  418.      Encrypting a Message
  419.      --------------------
  420.       
  421.      To encrypt a plaintext file with the recipient's public key, type:
  422.  
  423.  
  424.      PGPDOC1.TXT           Thursday, September  3, 1992 2:07 am           Page 9
  425.  
  426.  
  427.  
  428.  
  429.       
  430.          pgp -e textfile her_userid
  431.       
  432.      This command produces a ciphertext file called textfile.pgp.  A
  433.      specific example is:
  434.       
  435.          pgp -e letter.txt Alice
  436.      or:
  437.          pgp -e letter.txt "Alice S"
  438.       
  439.      The first example searches your public key ring file "pubring.pgp"
  440.      for any public key certificates that contain the string "Alice"
  441.      anywhere in the user ID field.  The second example would find any
  442.      user IDs that contain "Alice S".  You can't use spaces in the string
  443.      on the command line unless you enclose the whole string in quotes. 
  444.      The search is not case-sensitive.  If it finds a matching public key,
  445.      it uses it to encrypt the plaintext file "letter.txt", producing a
  446.      ciphertext file called "letter.pgp". 
  447.       
  448.      PGP attempts to compress the plaintext before encrypting it, thereby
  449.      greatly enhancing resistance to cryptanalysis.  Thus the ciphertext
  450.      file will likely be smaller than the plaintext file.
  451.       
  452.      If you want to send this encrypted message through E-mail channels,
  453.      convert it into printable ASCII "radix-64" format by adding the -a
  454.      option, as described later.
  455.       
  456.       
  457.       
  458.      Signing a Message
  459.      -----------------
  460.       
  461.      To sign a plaintext file with your secret key, type:
  462.       
  463.          pgp -s textfile [-u your_userid]
  464.       
  465.      Note that [brackets] denote an optional field, so don't actually type
  466.      real brackets.  
  467.       
  468.      This command produces a signed file called textfile.pgp.  A specific 
  469.      example is:
  470.       
  471.          pgp -s letter.txt -u Bob
  472.       
  473.      This searches your secret key ring file "secring.pgp" for any secret
  474.      key certificates that contain the string "Bob" anywhere in the user
  475.      ID field.  The search is not case-sensitive.  If it finds a matching
  476.      secret key, it uses it to sign the plaintext file "letter.txt",
  477.      producing a signature file called "letter.pgp". 
  478.       
  479.      If you leave off the user ID field, the first key on your secret
  480.      keyring is used as the default secret key for your signature.
  481.       
  482.       
  483.       
  484.      Signing and then Encrypting
  485.  
  486.  
  487.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 10
  488.  
  489.  
  490.  
  491.  
  492.      ---------------------------
  493.       
  494.      To sign a plaintext file with your secret key, and then encrypt it 
  495.      with the recipient's public key:
  496.       
  497.          pgp -es textfile her_userid [-u your_userid]
  498.       
  499.      Note that [brackets] denote an optional field, so don't actually type
  500.      real brackets.  
  501.       
  502.      This example produces a nested ciphertext file called textfile.pgp.
  503.      Your secret key to create the signature is automatically looked up in
  504.      your secret key ring via your_userid.  Her public encryption key is
  505.      automatically looked up in your public keyring via her_userid.  If
  506.      you leave off her user ID field from the command line, you will be 
  507.      prompted for it.
  508.       
  509.      If you leave off your own user ID field, the first key on your secret
  510.      keyring is be used as the default secret key for your signature.
  511.       
  512.      Note that PGP attempts to compress the plaintext before encrypting
  513.      it.
  514.       
  515.      If you want to send this encrypted message through E-mail channels,
  516.      convert it into printable ASCII "radix-64" format by adding the -a
  517.      option, as described later.
  518.       
  519.       
  520.       
  521.      Using Just Conventional Encryption
  522.      ----------------------------------
  523.       
  524.      Sometimes you just need to encrypt a file the old-fashioned way, with
  525.      conventional single-key cryptography.  This approach is useful for
  526.      protecting archive files that will be stored but will not be sent to
  527.      anyone else.  Since the same person that encrypted the file will also
  528.      decrypt the file, public key cryptography is not really necessary. 
  529.       
  530.      To encrypt a plaintext file with just conventional cryptography,
  531.      type:
  532.       
  533.          pgp -c textfile
  534.       
  535.      This example encrypts the plaintext file called textfile, producing a
  536.      ciphertext file called textfile.pgp, without using public key
  537.      cryptography, key rings, user IDs, or any of that stuff.  It prompts
  538.      you for a pass phrase to use as a conventional key to encipher the
  539.      file.  This pass phrase need not be (and, indeed, SHOULD not be) the
  540.      same pass phrase that you use to protect your own secret key.  Note
  541.      that PGP attempts to compress the plaintext before encrypting it.  
  542.       
  543.      PGP will not encrypt the same plaintext the same way twice, even if
  544.      you used the same pass phrase every time.
  545.       
  546.       
  547.       
  548.  
  549.  
  550.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 11
  551.  
  552.  
  553.  
  554.  
  555.      Decrypting and Checking Signatures
  556.      ----------------------------------
  557.       
  558.      To decrypt an encrypted file, or to check the signature integrity of a
  559.      signed file:
  560.       
  561.          pgp ciphertextfile [-o plaintextfile]
  562.       
  563.      Note that [brackets] denote an optional field, so don't actually type
  564.      real brackets.  
  565.       
  566.      The ciphertext file name is assumed to have a default extension of
  567.      ".pgp".  The optional plaintext output file name specifies where to
  568.      put processed plaintext output.  If no name is specified, the
  569.      ciphertext filename is used, with no extension.  If a signature is
  570.      nested inside of an encrypted file, it is automatically decrypted and
  571.      the signature integrity is checked.  The full user ID of the signer
  572.      is displayed.
  573.       
  574.      Note that the "unwrapping" of the ciphertext file is completely 
  575.      automatic, regardless of whether the ciphertext file is just signed,
  576.      just encrypted, or both.  PGP uses the key ID prefix in the
  577.      ciphertext file to automatically find the appropriate secret
  578.      decryption key on your secret key ring.  If there is a nested
  579.      signature, PGP then uses the key ID prefix in the nested signature to
  580.      automatically find the appropriate public key on your public key ring
  581.      to check the signature.  If all the right keys are already present on
  582.      your key rings, no user intervention is required, except that you
  583.      will be prompted for your password for your secret key if necessary. 
  584.      If the ciphertext file was conventionally encrypted without public
  585.      key cryptography, PGP recognizes this and prompts you for the pass
  586.      phrase to conventionally decrypt it.
  587.       
  588.       
  589.  
  590.  
  591.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 12
  592.  
  593.  
  594.  
  595.  
  596.       
  597.      Managing Keys
  598.      =============
  599.       
  600.      Since the time of Julius Caesar, key management has always been the
  601.      hardest part of cryptography.  One of the principal distinguishing
  602.      features of PGP is its sophisticated key management.  
  603.       
  604.       
  605.       
  606.      RSA Key Generation
  607.      ------------------
  608.       
  609.      To generate your own unique public/secret key pair of a specified
  610.      size, type:  
  611.       
  612.          pgp -kg
  613.       
  614.      PGP shows you a menu of recommended key sizes (casual grade,
  615.      commercial grade, or military grade) and prompts you for what size
  616.      key you want, up to around a thousand bits.  The bigger the key, the
  617.      more security you get, but you pay a price in speed.  
  618.       
  619.      It also asks for a user ID, which means your name.  It's a good idea
  620.      to use your full name as your user ID, because then there is less
  621.      risk of other people using the wrong public key to encrypt messages
  622.      to you.  Spaces and punctuation are allowed in the user ID.  It would
  623.      help if you put your E-mail address in <angle brackets> after your
  624.      name, like so:
  625.        
  626.          Robert M. Smith <rms@xyzcorp.com>
  627.       
  628.      If you don't have an E-mail address, use your phone number or some
  629.      other unique information that would help ensure that your user ID is
  630.      unique.
  631.       
  632.      PGP also asks for a "pass phrase" to protect your secret key in case
  633.      it falls into the wrong hands.  Nobody can use your secret key file
  634.      without this pass phrase.  The pass phrase is like a password, except
  635.      that it can be a whole phrase or sentence with many words, spaces,
  636.      punctuation, or anything else you want in it.  Don't lose this pass
  637.      phrase-- there's no way to recover it if you do lose it.  This pass
  638.      phrase will be needed later every time you use your secret key.  The
  639.      pass phrase is case-sensitive, and should not be too short or easy to
  640.      guess.  It is never displayed on the screen.  Don't leave it written
  641.      down anywhere where someone else can see it, and don't store it on
  642.      your computer.  If you don't want a pass phrase (You fool!), just
  643.      press return (or enter) at the pass phrase prompt.
  644.       
  645.      The public/secret key pair is derived from large truly random numbers
  646.      derived from measuring the intervals between your keystrokes with a
  647.      fast timer.
  648.       
  649.      Note that RSA key generation is a VERY lengthy process.  It may take
  650.      a few seconds for a small key on a fast processor, or quite a few
  651.      minutes for a large key on an old IBM PC/XT.
  652.  
  653.  
  654.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 13
  655.  
  656.  
  657.  
  658.  
  659.       
  660.      The generated key pair will be placed on your public and secret key
  661.      rings.  You can later use the -kx command option to extract (copy)
  662.      your new public key from your public key ring and place it in a
  663.      separate public key file suitable for distribution to your friends. 
  664.      The public key file can be sent to your friends for inclusion in
  665.      their public key rings.  Naturally, you keep your secret key file to
  666.      yourself, and you should include it on your secret key ring.  Each
  667.      secret key on a key ring is individually protected with its own pass
  668.      phrase.  
  669.       
  670.      Never give your secret key to anyone else.  For the same reason, don't
  671.      make key pairs for your friends.  Everyone should make their own key
  672.      pair.  Always keep physical control of your secret key, and don't risk
  673.      exposing it by storing it on a remote timesharing computer.  Keep it
  674.      on your own personal computer.
  675.       
  676.       
  677.       
  678.      Adding a Key to Your Key Ring
  679.      -----------------------------
  680.       
  681.      To add a public or secret key file's contents to your public or
  682.      secret key ring (note that [brackets] denote an optional field):
  683.       
  684.          pgp -ka keyfile [keyring]
  685.       
  686.      The keyfile extension defaults to ".pgp".  The optional keyring file
  687.      name defaults to "pubring.pgp" or "secring.pgp", depending on whether
  688.      the keyfile contains a public or a secret key.  You may specify a
  689.      different key ring file name, with the extension defaulting to
  690.      ".pgp".
  691.       
  692.      If the key is already on your keyring, PGP will not add it again. All
  693.      of the keys in the keyfile are added to the keyring, except for
  694.      duplicates.  If the key being added has attached signatures
  695.      certifying it, the signatures are added with the key.  If the key is
  696.      already on your keyring, PGP just merges in any new certifying
  697.      signatures for that key that you don't already have on your keyring.
  698.       
  699.       
  700.       
  701.      Removing a Key from Your Key Ring
  702.      ---------------------------------
  703.       
  704.      To remove a key from your public key ring:
  705.       
  706.          pgp -kr userid [keyring]
  707.       
  708.      This searches for the specified user ID in your keyring, and removes
  709.      it if it finds a match.  Remember that any fragment of the user ID
  710.      will suffice for a match.  The optional keyring file name is assumed
  711.      to be literally "pubring.pgp".  It can be omitted, or you can specify
  712.      "secring.pgp" if you want to remove a secret key.  You may specify a
  713.      different key ring file name.  The default key ring extension is
  714.      ".pgp".
  715.  
  716.  
  717.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 14
  718.  
  719.  
  720.  
  721.  
  722.       
  723.       
  724.       
  725.      Extracting (copying) a Key from Your Key Ring
  726.      ---------------------------------------------
  727.       
  728.      To extract (copy) a key from your public or secret key ring:
  729.       
  730.          pgp -kx userid keyfile [keyring]
  731.       
  732.      This non-destructively copies the key specified by the user ID from
  733.      your public or secret key ring to the specified key file.  This is
  734.      particularly useful if you want to give a copy of your public key to
  735.      someone else.
  736.       
  737.      If the key has any certifying signatures attached to it on your key
  738.      ring, they are copied off along with the key.
  739.       
  740.      If you want the extracted key represented in printable ASCII
  741.      characters suitable for email purposes, use the -kxa options.
  742.       
  743.       
  744.       
  745.      Viewing the Contents of Your Key Ring
  746.      -------------------------------------
  747.       
  748.      To view the contents of your public key ring:
  749.       
  750.          pgp -kv[v] [userid] [keyring] 
  751.       
  752.      This lists any keys in the key ring that match the specified user ID
  753.      substring.  If you omit the user ID, all of the keys in the key ring
  754.      are listed.  The optional keyring file name is assumed to be
  755.      "pubring.pgp".  It can be omitted, or you can specify "secring.pgp"
  756.      if you want to list secret keys.  If you want to specify a different
  757.      key ring file name, you can.  The default key ring extension is
  758.      ".pgp".  
  759.       
  760.      To see all the certifying signatures attached to each key, use the
  761.      -kvv option:
  762.       
  763.          pgp -kvv [userid] [keyring] 
  764.       
  765.      If you want to specify a particular key ring file name, but want to
  766.      see all the keys in it, try this alternative approach:
  767.       
  768.          pgp keyfile
  769.       
  770.      With no command options specified, PGP lists all the keys in
  771.      keyfile.pgp, and also attempts to add them to your key ring if they
  772.      are not already on your key ring.
  773.       
  774.       
  775.       
  776.      How to Protect Public Keys from Tampering
  777.      -----------------------------------------
  778.  
  779.  
  780.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 15
  781.  
  782.  
  783.  
  784.  
  785.       
  786.      In a public key cryptosystem, you don't have to protect public keys
  787.      from exposure.  In fact, it's better if they are widely disseminated.
  788.      But it is important to protect public keys from tampering, to make
  789.      sure that a public key really belongs to whom it appears to belong to.
  790.      This may be the most important vulnerability of a public-key
  791.      cryptosystem.  Let's first look at a potential disaster, then at how
  792.      to safely avoid it with PGP.
  793.       
  794.      Suppose you wanted to send a private message to Alice.  You download
  795.      Alice's public key certificate from an electronic bulletin board
  796.      system (BBS).  You encrypt your letter to Alice with this public key
  797.      and send it to her through the BBS's E-mail facility.
  798.       
  799.      Unfortunately, unbeknownst to you or Alice, another user named
  800.      Charlie has infiltrated the BBS and generated a public key of his own
  801.      with Alice's user ID attached to it.  He covertly substitutes his
  802.      bogus key in place of Alice's real public key.  You unwittingly use
  803.      this bogus key belonging to Charlie instead of Alice's public key. 
  804.      All looks normal because this bogus key has Alice's user ID.  Now
  805.      Charlie can decipher the message intended for Alice because he has
  806.      the matching secret key.  He may even re-encrypt the deciphered
  807.      message with Alice's real public key and send it on to her so that no
  808.      one suspects any wrongdoing.  Furthermore, he can even make
  809.      apparently good signatures from Alice with this secret key because
  810.      everyone will use the bogus public key to check Alice's signatures.
  811.       
  812.      The only way to prevent this disaster is to prevent anyone from
  813.      tampering with public keys.  If you got Alice's public key directly
  814.      from Alice, this is no problem.  But that may be difficult if Alice
  815.      is a thousand miles away, or is currently unreachable.  
  816.       
  817.      Perhaps you could get Alice's public key from a mutual trusted friend
  818.      David who knows he has a good copy of Alice's public key.  David
  819.      could sign Alice's public key, vouching for the integrity of Alice's
  820.      public key.  David would create this signature with his own secret
  821.      key. 
  822.       
  823.      This would create a signed public key certificate, and would show
  824.      that Alice's key had not been tampered with.  This requires you have a
  825.      known good copy of David's public key to check his signature.  Perhaps
  826.      David could provide Alice with a signed copy of your public key also.
  827.      David is thus serving as an "introducer" between you and Alice.  
  828.       
  829.      This signed public key certificate for Alice could be uploaded by
  830.      David or Alice to the BBS, and you could download it later.  You
  831.      could then check the signature via David's public key and thus be
  832.      assured that this is really Alice's public key.  No impostor can fool
  833.      you into accepting his own bogus key as Alice's because no one else
  834.      can forge signatures made by David.
  835.       
  836.      A widely trusted person could even specialize in providing this
  837.      service of "introducing" users to each other by providing signatures
  838.      for their public key certificates.  This trusted person could be
  839.      regarded as a "key server", or as a "Certifying Authority".  Any
  840.      public key certificates bearing the key server's signature could be
  841.  
  842.  
  843.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 16
  844.  
  845.  
  846.  
  847.  
  848.      trusted as truly belonging to whom they appear to belong to.  All
  849.      users who wanted to participate would need a known good copy of just
  850.      the key server's public key, so that the key server's signatures
  851.      could be verified.  
  852.       
  853.      A trusted centralized key server or Certifying Authority is
  854.      especially appropriate for large impersonal centrally-controlled
  855.      corporate or government institutions.  Some institutional
  856.      environments use hierarchies of Certifying Authorities.
  857.       
  858.      For more decentralized grassroots "guerrilla style" environments,
  859.      allowing all users to act as a trusted introducers for their friends
  860.      would probably work better than a centralized key server.  PGP tends
  861.      to emphasize this organic decentralized non-institutional approach. 
  862.      It better reflects the natural way humans interact on a personal
  863.      social level, and allows people to better choose who they can trust
  864.      for key management.
  865.       
  866.      This whole business of protecting public keys from tampering is the
  867.      single most difficult problem in practical public key applications. 
  868.      It is the "Achilles heel" of public key cryptography, and a lot of
  869.      software complexity is tied up in solving this one problem.  
  870.       
  871.      You should use a public key only after you are sure that it is a good
  872.      public key that has not been tampered with, and actually belongs to
  873.      the person it claims to.  You can be sure of this if you got this
  874.      public key certificate directly from its owner, or if it bears the
  875.      signature of someone else that you trust, from whom you already have
  876.      a good public key.  Also, the user ID should have the full name of
  877.      the key's owner, not just her first name.
  878.       
  879.      No matter how tempted you are-- and you will be tempted-- never,
  880.      NEVER give in to expediency and trust a public key you downloaded
  881.      from a bulletin board, unless it is signed by someone you trust. 
  882.      That uncertified public key could have been tampered with by anyone,
  883.      maybe even by the system administrator of the bulletin board.
  884.       
  885.      If you are asked to sign someone else's public key certificate, make
  886.      certain that it really belongs to that person named in the user ID of
  887.      that public key certificate.  This is because your signature on her
  888.      public key certificate is a promise by you that this public key
  889.      really belongs to her.  Other people who trust you will accept her
  890.      public key because it bears your signature.  It may be ill-advised to
  891.      rely on hearsay-- don't sign her public key unless you have
  892.      independent firsthand knowledge that it really belongs to her. 
  893.      Preferably, you should sign it only if you got it directly from her. 
  894.       
  895.      Bear in mind that your signature on a public key certificate does not
  896.      vouch for the integrity of that person, but only vouches for the
  897.      integrity (the ownership) of that person's public key.  You aren't
  898.      risking your credibility by signing the public key of a sociopath, if
  899.      you were completely confident that the key really belonged to him. 
  900.      Other people would accept that key as belonging to him because you
  901.      signed it (assuming they trust you), but they wouldn't trust that
  902.      key's owner.  Trusting a key is not the same as trusting the key's
  903.      owner.
  904.  
  905.  
  906.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 17
  907.  
  908.  
  909.  
  910.  
  911.       
  912.      Trust is not necessarily transferable; I have a friend who I trust
  913.      not to lie.  He's a gullible person who trusts the President not to
  914.      lie.  That doesn't mean I trust the President not to lie.  This is
  915.      just common sense.  If I trust Alice's signature on a key, and Alice
  916.      trusts Charlie's signature on a key, that does not imply that I have
  917.      to trust Charlie's signature on a key.  
  918.       
  919.      It would be a good idea to keep your own public key on hand with a
  920.      collection of certifying signatures attached from a variety of
  921.      "introducers", in the hopes that most people will trust at least one
  922.      of the introducers who vouch for your own public key's validity. 
  923.      You could post your key with its attached collection of certifying
  924.      signatures on various electronic bulletin boards.  If you sign
  925.      someone else's public key, return it to them with your signature so
  926.      that they can add it to their own collection of credentials for their
  927.      own public key.
  928.       
  929.      PGP keeps track of which keys on your public keyring are properly
  930.      certified with signatures from introducers that you trust.  All you
  931.      have to do is tell PGP which people you trust as introducers, and
  932.      certify their keys yourself with your own ultimately trusted key.
  933.      PGP can take it from there, automatically validating any other keys
  934.      that have been signed by your designated introducers.  And of course
  935.      you may directly sign more keys yourself.  More on this later.
  936.       
  937.      Make sure no one else can tamper with your own public key ring.
  938.      Checking a new signed public key certificate must ultimately depend
  939.      on the integrity of the trusted public keys that are already on your
  940.      own public key ring.  Maintain physical control of your public key
  941.      ring, preferably on your own personal computer rather than on a
  942.      remote timesharing system, just as you would do for your secret key. 
  943.      This is to protect it from tampering, not from disclosure.  Keep a
  944.      trusted backup copy of your public key ring and your secret key ring
  945.      on write-protected media.
  946.       
  947.      Since your own trusted public key is used as a final authority to
  948.      directly or indirectly certify all the other keys on your keyring, it
  949.      is the most important key to protect from tampering.  To detect any
  950.      tampering of your own ultimately-trusted public key, PGP can be set
  951.      up to automatically compare your public key against a backup copy on
  952.      write-protected media.  For details, see the description of the "-kc"
  953.      keyring check command in the Special Topics volume.
  954.       
  955.      PGP generally assumes you will maintain physical security over your
  956.      system and your key rings, as well as your copy of PGP itself.  If an
  957.      intruder can tamper with your disk, then in theory he can tamper with
  958.      PGP itself, rendering moot the safeguards PGP may have to detect
  959.      tampering with keys.
  960.       
  961.      One somewhat complicated way to protect your own whole public key ring
  962.      from tampering is to sign the whole ring with your own secret key. 
  963.      You could do this by making a detached signature certificate of the
  964.      public key ring, by signing the ring with the "-sb" options (see the
  965.      section called "Separating Signatures from Messages" in the PGP
  966.      User's Guide, Special Topics volume).  Unfortunately, you would still
  967.  
  968.  
  969.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 18
  970.  
  971.  
  972.  
  973.  
  974.      have to keep a separate trusted copy of your own public key around to
  975.      check the signature you made.  You couldn't rely on your own public
  976.      key stored on your public key ring to check the signature you made
  977.      for the whole ring, because that is part of what you're trying to
  978.      check.  
  979.       
  980.       
  981.       
  982.      How Does PGP Keep Track of Which Keys are Valid?
  983.      ------------------------------------------------
  984.       
  985.      Before you read this section, be sure to read the above section on 
  986.      "How to Protect Public Keys from Tampering".
  987.       
  988.      PGP keeps track of which keys on your public keyring are properly
  989.      certified with signatures from introducers that you trust.  All you
  990.      have to do is tell PGP which people you trust as introducers, and
  991.      certify their keys yourself with your own ultimately trusted key.
  992.      PGP can take it from there, automatically validating any other keys
  993.      that have been signed by your designated introducers.  And of course
  994.      you may directly sign more keys yourself.
  995.       
  996.      There are two entirely separate criteria PGP uses to judge a public
  997.      key's usefulness: 
  998.       
  999.        1)  Does the key actually belong to whom it appears to belong?  
  1000.            In other words, has it been certified with a trusted signature?
  1001.        2)  Does it belong to someone we can trust to certify other keys?
  1002.       
  1003.      PGP can calculate the answer to the first question.  To answer the
  1004.      second question, PGP must be explicitly told by you, the user.  When
  1005.      you supply the answer to question 2, PGP can then calculate the
  1006.      answer to question 1 for other keys signed by the introducer you
  1007.      designated as trusted.
  1008.       
  1009.      Keys that have been certified by a trusted introducer are deemed
  1010.      valid by PGP.  The keys belonging to trusted introducers must
  1011.      themselves be certified either by you or by other trusted
  1012.      introducers.
  1013.       
  1014.      PGP also allows for the possibility of you having several shades of
  1015.      trust for people to act as introducers.  Your trust for a key's owner
  1016.      to act as an introducer does not just reflect your estimation of
  1017.      their personal integrity-- it should also reflect how competent you
  1018.      think they are at understanding key management and using good
  1019.      judgement in signing keys.  You can designate a person to PGP as
  1020.      unknown, untrusted, marginally trusted, or completely trusted to
  1021.      certify other public keys.  This trust information is stored on your
  1022.      keyring with their key, but when you tell PGP to copy a key off your
  1023.      keyring, PGP will not copy the trust information along with the key,
  1024.      because your private opinions on trust are regarded as confidential. 
  1025.       
  1026.      When PGP is calculating the validity of a public key, it examines the
  1027.      trust level of all the attached certifying signatures.  It computes a
  1028.      weighted score of validity-- two marginally trusted signatures are
  1029.      deemed as credible as one fully trusted signature.  PGP's skepticism
  1030.  
  1031.  
  1032.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 19
  1033.  
  1034.  
  1035.  
  1036.  
  1037.      is adjustable-- for example, you may tune PGP to require two fully
  1038.      trusted signatures or three marginally trusted signatures to judge a
  1039.      key as valid.
  1040.       
  1041.      Your own key is "axiomatically" valid to PGP, needing no introducer's
  1042.      signature to prove its validity.  PGP knows which public keys are
  1043.      yours, by looking for the corresponding secret keys on the secret
  1044.      keyring.  PGP also assumes you ultimately trust yourself to certify
  1045.      other keys.
  1046.       
  1047.      As time goes on, you will accumulate keys from other people that you
  1048.      may want to designate as trusted introducers.  Everyone else will
  1049.      each choose their own trusted introducers.  And everyone will
  1050.      gradually accumulate and distribute with their key a collection of
  1051.      certifying signatures from other people, with the expectation that
  1052.      anyone receiving it will trust at least one or two of the signatures. 
  1053.      This will cause the emergence of a decentralized fault-tolerant web
  1054.      of confidence for all public keys.
  1055.       
  1056.      This unique grass-roots approach contrasts sharply with Government
  1057.      standard public key management schemes, such as Internet Privacy
  1058.      Enhanced Mail (PEM), which are based on centralized control and
  1059.      mandatory centralized trust.  The standard schemes rely on a
  1060.      hierarchy of Certifying Authorities who dictate who you must trust. 
  1061.      PGP's decentralized probabilistic method for determining public key
  1062.      legitimacy is the centerpiece of its key management architecture. 
  1063.      PGP lets you alone choose who you trust, putting you at the top of
  1064.      your own private certification pyramid.  PGP is for people who prefer
  1065.      to pack their own parachutes.
  1066.       
  1067.       
  1068.       
  1069.      How to Protect Secret Keys from Disclosure
  1070.      ------------------------------------------
  1071.       
  1072.      Protect your own secret key and your pass phrase carefully.  Really,
  1073.      really carefully.  If your secret key is ever compromised, you'd
  1074.      better get the word out quickly to all interested parties (good luck)
  1075.      before someone else uses it to make signatures in your name.  For
  1076.      example, they could use it to sign bogus public key certificates,
  1077.      which could create problems for many people, especially if your
  1078.      signature is widely trusted.  And of course, a compromise of your own
  1079.      secret key could expose all messages sent to you.
  1080.       
  1081.      To protect your secret key, you can start by always keeping physical
  1082.      control of your secret key.  Keeping it on your personal computer at
  1083.      home is OK, or keep it in your notebook computer that you can carry
  1084.      with you.  If you must use an office computer that you don't always
  1085.      have physical control of, then keep your public and secret key rings
  1086.      on a write-protected removable floppy disk, and don't leave it behind
  1087.      when you leave the office.  It wouldn't be a good idea to allow your
  1088.      secret key to reside on a remote timesharing computer, such as a
  1089.      remote dial-in Unix system.  Someone could eavesdrop on your modem
  1090.      line and capture your pass phrase, and then obtain your actual secret
  1091.      key from the remote system.  You should only use your secret key on a
  1092.      machine that you have physical control over.  
  1093.  
  1094.  
  1095.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 20
  1096.  
  1097.  
  1098.  
  1099.  
  1100.       
  1101.      Don't store your pass phrase anywhere on the computer that has your
  1102.      secret key file.  Storing both the secret key and the pass phrase on
  1103.      the same computer is as dangerous as keeping your PIN in the same
  1104.      wallet as your Automatic Teller Machine bank card.  You don't want
  1105.      somebody to get their hands on your disk containing both the pass
  1106.      phrase and the secret key file.  It would be most secure if you just
  1107.      memorize your pass phrase and don't store it anywhere but your brain.  
  1108.      If you feel you must write down your pass phrase, keep it well
  1109.      protected, perhaps even more well protected than the secret key file.
  1110.       
  1111.      And keep backup copies of your secret key ring-- remember, you have
  1112.      the only copy of your secret key, and losing it will render useless
  1113.      all the copies of your public key that you have spread throughout the
  1114.      world.  
  1115.       
  1116.      The decentralized non-institutional approach PGP uses to manage
  1117.      public keys has its benefits, but unfortunately this also means we
  1118.      can't rely on a single centralized list of which keys have been
  1119.      compromised.  This makes it a bit harder to contain the damage of a
  1120.      secret key compromise.  You just have to spread the word and hope
  1121.      everyone hears about it.
  1122.       
  1123.      If the worst case happens-- your secret key and pass phrase are both
  1124.      compromised (hopefully you will find this out somehow)-- you will
  1125.      have to issue a "key compromise" certificate.  This kind of
  1126.      certificate is used to warn other people to stop using your public
  1127.      key.  You can use PGP to create such a certificate by using the "-kd"
  1128.      command.  Then you must somehow send this compromise certificate to
  1129.      everyone else on the planet, or at least to all your friends and
  1130.      their friends, et cetera.  Their own PGP software will install this
  1131.      key compromise certificate on their public keyrings and will
  1132.      automatically prevent them from accidentally using your public key
  1133.      ever again.  You can then generate a new secret/public key pair and
  1134.      publish the new public key.  You could send out one package containing
  1135.      both your new public key and the key compromise certificate for your 
  1136.      old key.
  1137.       
  1138.       
  1139.       
  1140.      Revoking a Public Key
  1141.      ---------------------
  1142.       
  1143.      Suppose your secret key and your pass phrase are somehow both
  1144.      compromised.  You have to get the word out to the rest of the world,
  1145.      so that they will all stop using your public key.  To do this, you 
  1146.      will have to issue a "key compromise" certificate to revoke your
  1147.      public key.
  1148.       
  1149.      To generate a key compromise certificate, use the -kd command:
  1150.       
  1151.           pgp -kd your_userid
  1152.       
  1153.      You should widely disseminate this key compromise certificate as soon
  1154.      as possible.  Other people who receive it can add it to their public
  1155.      keyrings, and their PGP software then automatically prevents them
  1156.  
  1157.  
  1158.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 21
  1159.  
  1160.  
  1161.  
  1162.  
  1163.      from accidentally using your old public key ever again.  You can then
  1164.      generate a new secret/public key pair and publish the new public key.
  1165.       
  1166.      You may choose to revoke your key for some other reason than the
  1167.      compromise of a secret key.  If so, you may still use the same
  1168.      mechanism to revoke it.
  1169.       
  1170.       
  1171.       
  1172.  
  1173.  
  1174.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 22
  1175.  
  1176.  
  1177.  
  1178.  
  1179.       
  1180.      Advanced Topics
  1181.      ===============
  1182.       
  1183.      Most of the "Advanced Topics" are covered in the "PGP User's Guide,
  1184.      Volume II:  Special Topics".  But here are a few topics that bear
  1185.      mentioning here.
  1186.       
  1187.       
  1188.      Sending Ciphertext Through E-mail Channels: Radix-64 Format
  1189.      -----------------------------------------------------------
  1190.       
  1191.      Many electronic mail systems only allow messages made of ASCII text,
  1192.      not the 8-bit raw binary data that ciphertext is made of.  To get
  1193.      around this problem, PGP supports ASCII radix-64 format for
  1194.      ciphertext messages, similar to the Internet Privacy-Enhanced Mail
  1195.      (PEM) format.  This special format represents binary data by using
  1196.      only printable ASCII characters, so it is useful for transmitting
  1197.      binary encrypted data through 7-bit channels or for sending binary
  1198.      encrypted data as normal E-mail text.  This format acts as a form of
  1199.      "transport armor", protecting it against corruption as it travels
  1200.      through intersystem gateways on Internet.  It also appends a CRC to 
  1201.      detect transmission errors.
  1202.       
  1203.      Radix-64 format converts the plaintext by expanding groups of 3
  1204.      binary 8-bit bytes into 4 printable ASCII characters, so the file
  1205.      grows by about 33%.  But this expansion isn't so bad when you
  1206.      consider that the file probably was compressed more than that by PGP
  1207.      before it was encrypted.
  1208.       
  1209.      To produce a ciphertext file in ASCII radix-64 format, just add the
  1210.      "a" option when encrypting or signing a message, like so:
  1211.       
  1212.          pgp -esa message.txt her_userid
  1213.       
  1214.      This example produces a ciphertext file called "message.asc" that
  1215.      contains data in a PEM-like ASCII radix-64 format.  This file can be
  1216.      easily uploaded into a text editor through 7-bit channels for
  1217.      transmission as normal E-mail on Internet or any other E-mail
  1218.      network.
  1219.       
  1220.      Decrypting the radix-64 transport-armored message is no different than
  1221.      a normal decrypt.  For example:
  1222.       
  1223.          pgp message
  1224.       
  1225.      PGP automatically looks for the ASCII file "message.asc" before it
  1226.      looks for the binary file "message.pgp".  It recognizes that the file
  1227.      is in radix-64 format and converts it back to binary before
  1228.      processing as it normally does, producing as a by-product a ".pgp"
  1229.      ciphertext file in binary form.  The final output file is in normal
  1230.      plaintext form, just as it was in the original file "message.txt".
  1231.       
  1232.      Most Internet E-mail facilities prohibit sending messages that are
  1233.      more than 50000 bytes long.  Longer messages must be broken into
  1234.      smaller chunks that can be mailed separately.  If your encrypted
  1235.  
  1236.  
  1237.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 23
  1238.  
  1239.  
  1240.  
  1241.  
  1242.      message is very large, and you requested radix-64 format, PGP 
  1243.      automatically breaks it up into chunks that are each small enough to
  1244.      send via E-mail.  The chunks are put into files named with extensions
  1245.      ".as1", ".as2", ".as3", etc.  The recipient must concatenate these
  1246.      separate files back together in their proper order into one big file
  1247.      before decrypting it.  While decrypting, PGP ignores any extraneous
  1248.      text in mail headers that are not enclosed in the radix-64 message
  1249.      blocks.
  1250.       
  1251.      If you want to send a public key to someone else in radix-64 format,
  1252.      just add the -a option while extracting the key from your keyring.
  1253.       
  1254.      If you forgot to use the -a option when you made a ciphertext file or
  1255.      extracted a key, you may still directly convert the binary file into
  1256.      radix-64 format by simply using the -a option alone, without any
  1257.      encryption specified.  PGP converts it to a ".asc" file.
  1258.       
  1259.       
  1260.       
  1261.      Environmental Variable for Path Name
  1262.      ------------------------------------
  1263.       
  1264.      PGP uses several special files for its purposes, such as your
  1265.      standard key ring files "pubring.pgp" and "secring.pgp", the random
  1266.      number seed file "randseed.bin", the PGP configuration file
  1267.      "config.txt", and the foreign language string translation file
  1268.      "language.txt".  These special files can be kept in any directory, by
  1269.      setting the environmental variable "PGPPATH" to the desired pathname. 
  1270.      For example, on MSDOS, the shell command:
  1271.       
  1272.          SET PGPPATH=C:\PGP
  1273.       
  1274.      makes PGP assume that your public key ring filename is 
  1275.      "C:\PGP\pubring.pgp".  Assuming, of course, that this directory
  1276.      exists.  Use your favorite text editor to modify your MSDOS
  1277.      AUTOEXEC.BAT file to automatically set up this variable whenever you
  1278.      start up your system.  If PGPPATH remains undefined, these special
  1279.      files are assumed to be in the current directory.
  1280.       
  1281.       
  1282.       
  1283.      Setting Configuration Parameters: CONFIG.TXT
  1284.      --------------------------------------------
  1285.       
  1286.      PGP has a number of user-settable parameters that can be defined in a
  1287.      special configuration text file called "config.txt", in the directory
  1288.      pointed to by the shell environmental variable PGPPATH.  Having a
  1289.      configuration file enables the user to define various flags and
  1290.      parameters for PGP without the burden of having to always define
  1291.      these parameters in the PGP command line.  
  1292.       
  1293.      With these configuration parameters, for example, you can control
  1294.      where PGP stores its temporary scratch files, or you can select what
  1295.      foreign language PGP will use to display its diagnostics messages and
  1296.      user prompts, or you can adjust PGP's level of skepticism in
  1297.      determining a key's validity based on the number of certifying
  1298.  
  1299.  
  1300.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 24
  1301.  
  1302.  
  1303.  
  1304.  
  1305.      signatures it has.
  1306.       
  1307.      For more details on setting these configuration parameters, see the
  1308.      appropriate section of the PGP User's Guide, Special Topics volume.
  1309.       
  1310.       
  1311.       
  1312.      Vulnerabilities
  1313.      ---------------
  1314.       
  1315.      No data security system is impenetrable.  PGP can be circumvented in
  1316.      a variety of ways.  Potential vulnerabilities you should be aware of
  1317.      include compromising your pass phrase or secret key, public key
  1318.      tampering, files that you deleted but are still somewhere on the
  1319.      disk, viruses and Trojan horses, breaches in your physical security,
  1320.      electromagnetic emissions, exposure on multi-user systems, traffic
  1321.      analysis, and perhaps even direct cryptanalysis.
  1322.       
  1323.      For a detailed discussion of these issues, see the "Vulnerabilities"
  1324.      section in the PGP User's Guide, Special Topics volume.
  1325.       
  1326.       
  1327.  
  1328.  
  1329.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 25
  1330.  
  1331.  
  1332.  
  1333.  
  1334.       
  1335.      Trusting Snake Oil
  1336.      ==================
  1337.       
  1338.      When examining a cryptographic software package, the question always
  1339.      remains, why should you trust this product?  Even if you examined the
  1340.      source code yourself, not everyone has the cryptographic experience
  1341.      to judge the security.  Even if you are an experienced cryptographer,
  1342.      subtle weaknesses in the algorithms could still elude you. 
  1343.       
  1344.      When I was in college in the early seventies, I devised what I
  1345.      believed was a brilliant encryption scheme.  A simple pseudorandom
  1346.      number stream was added to the plaintext stream to create
  1347.      ciphertext.  This would seemingly thwart any frequency analysis of
  1348.      the ciphertext, and would be uncrackable even to the most resourceful
  1349.      Government intelligence agencies.  I felt so smug about my
  1350.      achievement.  So cock-sure.  
  1351.       
  1352.      Years later, I discovered this same scheme in several introductory
  1353.      cryptography texts and tutorial papers.  How nice.  Other
  1354.      cryptographers had thought of the same scheme.  Unfortunately, the
  1355.      scheme was presented as a simple homework assignment on how to use
  1356.      elementary cryptanalytic techniques to trivially crack it.  So much
  1357.      for my brilliant scheme.
  1358.       
  1359.      From this humbling experience I learned how easy it is to fall into a
  1360.      false sense of security when devising an encryption algorithm.  Most
  1361.      people don't realize how fiendishly difficult it is to devise an
  1362.      encryption algorithm that can withstand a prolonged and determined
  1363.      attack by a resourceful opponent.  Many mainstream software engineers
  1364.      have developed equally naive encryption schemes (often even the very
  1365.      same encryption scheme), and some of them have been incorporated into
  1366.      commercial encryption software packages and sold for good money to
  1367.      thousands of unsuspecting users. 
  1368.       
  1369.      This is like selling automotive seat belts that look good and feel
  1370.      good, but snap open in even the slowest crash test.  Depending on
  1371.      them may be worse than not wearing seat belts at all.  No one
  1372.      suspects they are bad until a real crash.  Depending on weak
  1373.      cryptographic software may cause you to unknowingly place sensitive
  1374.      information at risk.  You might not otherwise have done so if you had
  1375.      no cryptographic software at all.  Perhaps you may never even
  1376.      discover your data has been compromised.
  1377.       
  1378.      Sometimes commercial packages use the Federal Data Encryption
  1379.      Standard (DES), a good conventional algorithm recommended by the
  1380.      Government for commercial use (but not for classified information,
  1381.      oddly enough-- hmmm).  There are several "modes of operation" the 
  1382.      DES can use, some of them better than others.  The Government
  1383.      specifically recommends not using the weakest simplest mode for
  1384.      messages, the Electronic Codebook (ECB) mode.  But they do recommend
  1385.      the stronger and more complex Cipher Feedback (CFB) or Cipher Block
  1386.      Chaining (CBC) modes.  
  1387.       
  1388.      Unfortunately, most of the commercial encryption packages I've looked
  1389.      at use ECB mode.  When I've talked to the authors of a number of
  1390.  
  1391.  
  1392.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 26
  1393.  
  1394.  
  1395.  
  1396.  
  1397.      these implementations, they say they've never heard of CBC or CFB
  1398.      modes, and didn't know anything about the weaknesses of ECB mode. 
  1399.      The very fact that they haven't even learned enough cryptography to
  1400.      know these elementary concepts is not reassuring.  These same
  1401.      software packages often include a second faster encryption algorithm
  1402.      that can be used instead of the slower DES.  The author of the
  1403.      package often thinks his proprietary faster algorithm is as secure as
  1404.      the DES, but after questioning him I usually discover that it's just
  1405.      a variation of my own brilliant scheme from college days.  Or maybe
  1406.      he won't even reveal how his proprietary encryption scheme works, but
  1407.      assures me it's a brilliant scheme and I should trust it.  I'm sure
  1408.      he believes that his algorithm is brilliant, but how can I know that
  1409.      without seeing it?  
  1410.       
  1411.      In all fairness I must point out that in most cases these products do
  1412.      not come from companies that specialize in cryptographic technology.
  1413.       
  1414.      There is a company called AccessData (87 East 600 South, Orem, Utah
  1415.      84058, phone 1-800-658-5199) that sells a package for $185 that
  1416.      cracks the built-in encryption schemes used by WordPerfect, Lotus
  1417.      1-2-3, MS Excel, Symphony, Quattro Pro, Paradox, and MS Word 2.0.  It
  1418.      doesn't simply guess passwords-- it does real cryptanalysis.  Some
  1419.      people buy it when they forget their password for their own files. 
  1420.      Law enforcement agencies buy it too, so they can read files they
  1421.      seize.  I talked to Eric Thompson, the author, and he said his
  1422.      program only takes a split second to crack them, but he put in some
  1423.      delay loops to slow it down so it doesn't look so easy to the
  1424.      customer.  He also told me that the password encryption feature of
  1425.      PKZIP files can be easily broken, and that his law enforcement
  1426.      customers already have that service regularly provided to them from
  1427.      another vendor. 
  1428.       
  1429.      In some ways, cryptography is like pharmaceuticals.  Its integrity
  1430.      may be absolutely crucial.  Bad penicillin looks the same as good
  1431.      penicillin.  You can tell if your spreadsheet software is wrong, but
  1432.      how do you tell if your cryptography package is weak?  The ciphertext
  1433.      produced by a weak encryption algorithm looks as good as ciphertext
  1434.      produced by a strong encryption algorithm.  There's a lot of snake
  1435.      oil out there.  A lot of quack cures.  Unlike the patent medicine
  1436.      hucksters of old, these software implementors usually don't even know
  1437.      their stuff is snake oil.  They may be good software engineers, but 
  1438.      they usually haven't even read any of the academic literature in
  1439.      cryptography.  But they think they can write good cryptographic
  1440.      software.  And why not?  After all, it seems intuitively easy to do
  1441.      so.  And their software seems to work okay.    
  1442.       
  1443.      Anyone who thinks they have devised an unbreakable encryption scheme
  1444.      either is an incredibly rare genius or is naive and inexperienced.
  1445.       
  1446.      I remember a conversation with Brian Snow, a highly placed senior
  1447.      cryptographer with the NSA.  He said he would never trust an
  1448.      encryption algorithm designed by someone who had not "earned their
  1449.      bones" by first spending a lot of time cracking codes.  That did make
  1450.      a lot of sense.  I observed that practically no one in the commercial
  1451.      world of cryptography qualified under this criterion.  "Yes", he said
  1452.      with a self assured smile, "And that makes our job at NSA so much
  1453.  
  1454.  
  1455.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 27
  1456.  
  1457.  
  1458.  
  1459.  
  1460.      easier."  A chilling thought.  I didn't qualify either.
  1461.       
  1462.      The Government has peddled snake oil too.  After World War II, the US
  1463.      sold German Enigma ciphering machines to third world governments.
  1464.      But they didn't tell them that the Allies cracked the Enigma code
  1465.      during the war, a fact that remained classified for many years.  Even
  1466.      today many Unix systems worldwide use the Enigma cipher for file
  1467.      encryption, in part because the Government has created legal
  1468.      obstacles against using better algorithms.  They even tried to
  1469.      prevent the initial publication of the RSA algorithm in 1977.  And
  1470.      they have squashed essentially all commercial efforts to develop
  1471.      effective secure telephones for the general public. 
  1472.       
  1473.      The principle job of the US Government's National Security Agency is
  1474.      to gather intelligence, principally by covertly tapping into people's
  1475.      private communications (see James Bamford's book, "The Puzzle
  1476.      Palace").  The NSA has amassed considerable skill and resources for
  1477.      cracking codes.  When people can't get good cryptography to protect
  1478.      themselves, it makes NSA's job much easier.  NSA also has the
  1479.      responsibility of approving and recommending encryption algorithms. 
  1480.      Some critics charge that this is a conflict of interest, like putting
  1481.      the fox in charge of guarding the hen house.  NSA has been pushing a
  1482.      conventional encryption algorithm that they designed, and they won't
  1483.      tell anybody how it works because that's classified.  They want
  1484.      others to trust it and use it.  But any cryptographer can tell you
  1485.      that a well-designed encryption algorithm does not have to be
  1486.      classified to remain secure.  Only the keys should need protection. 
  1487.      How does anyone else really know if NSA's classified algorithm is
  1488.      secure?  It's not that hard for NSA to design an encryption algorithm
  1489.      that only they can crack, if no one else can review the algorithm. 
  1490.      Are they deliberately selling snake oil? 
  1491.       
  1492.      I'm not as certain about the security of PGP as I once was about my
  1493.      brilliant encryption software from college.  If I were, that would be
  1494.      a bad sign.  But I'm pretty sure that PGP does not contain any
  1495.      glaring weaknesses.  The crypto algorithms were developed by people
  1496.      at high levels of civilian cryptographic academia, and have been
  1497.      individually subject to extensive peer review.  Source code is
  1498.      available to facilitate peer review of PGP and to help dispel the
  1499.      fears of some users.  It's reasonably well researched, and has been
  1500.      years in the making.  And I don't work for the NSA.  I hope it
  1501.      doesn't require too large a "leap of faith" to trust the security of
  1502.      PGP.
  1503.       
  1504.       
  1505.  
  1506.  
  1507.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 28
  1508.  
  1509.  
  1510.  
  1511.  
  1512.       
  1513.      PGP Quick Reference
  1514.      ===================
  1515.       
  1516.      Here's a quick summary of PGP commands.
  1517.       
  1518.       
  1519.      To encrypt a plaintext file with the recipient's public key:
  1520.           pgp -e textfile her_userid
  1521.       
  1522.      To sign a plaintext file with your secret key:
  1523.           pgp -s textfile [-u your_userid]
  1524.       
  1525.      To sign a plaintext file with your secret key, and then encrypt it 
  1526.      with the recipient's public key:
  1527.           pgp -es textfile her_userid [-u your_userid]
  1528.       
  1529.      To encrypt a plaintext file with just conventional cryptography, type:
  1530.           pgp -c textfile
  1531.       
  1532.      To decrypt an encrypted file, or to check the signature integrity of a
  1533.      signed file:
  1534.           pgp ciphertextfile [-o plaintextfile]
  1535.       
  1536.      --- Key management commands:
  1537.       
  1538.      To generate your own unique public/secret key pair:
  1539.           pgp -kg
  1540.       
  1541.      To add a public or secret key file's contents to your public or
  1542.      secret key ring:
  1543.           pgp -ka keyfile [keyring]
  1544.       
  1545.      To extract (copy) a key from your public or secret key ring:
  1546.           pgp -kx userid keyfile [keyring]
  1547.      or:  pgp -kxa userid keyfile [keyring]
  1548.       
  1549.      To view the contents of your public key ring:
  1550.           pgp -kv[v] [userid] [keyring] 
  1551.       
  1552.      To view the contents and check the certifying signatures of your 
  1553.      public key ring:
  1554.           pgp -kc [userid] [keyring] 
  1555.       
  1556.      To edit the userid or pass phrase for your secret key:
  1557.           pgp -ke userid [keyring]
  1558.       
  1559.      To edit the trust parameters for a public key:
  1560.           pgp -ke userid [keyring]
  1561.       
  1562.      To remove a key or just a userid from your public key ring:
  1563.           pgp -kr userid [keyring]
  1564.       
  1565.      To sign and certify someone else's public key on your public key ring:
  1566.           pgp -ks her_userid [-u your_userid] [keyring]
  1567.       
  1568.  
  1569.  
  1570.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 29
  1571.  
  1572.  
  1573.  
  1574.  
  1575.      To remove selected signatures from a userid on a keyring:
  1576.           pgp -krs userid [keyring]
  1577.       
  1578.      --- Esoteric commands:
  1579.       
  1580.      To decrypt a message and leave the signature on it intact:
  1581.           pgp -d ciphertextfile
  1582.       
  1583.      To create a signature certificate that is detached from the document:
  1584.           pgp -sb textfile [-u your_userid]
  1585.       
  1586.      To detach a signature certificate from a signed message:
  1587.           pgp -b ciphertextfile
  1588.       
  1589.      --- Command options that can be used in combination with other 
  1590.      command options (sometimes even spelling interesting words!):
  1591.       
  1592.      To produce a ciphertext file in ASCII radix-64 format, just add the
  1593.      -a option when encrypting or signing a message or extracting a key:
  1594.           pgp -sea textfile her_userid
  1595.      or:  pgp -kxa userid keyfile [keyring]
  1596.       
  1597.      To wipe out the plaintext file after producing the ciphertext file,
  1598.      just add the -w (wipe) option when encrypting or signing a message:
  1599.           pgp -sew message.txt her_userid
  1600.       
  1601.      To specify that a plaintext file contains ASCII text, not binary, and
  1602.      should be converted to recipient's local text line conventions, add
  1603.      the -t (text) option to other options:
  1604.           pgp -seat message.txt her_userid
  1605.       
  1606.      To view the decrypted plaintext output on your screen (like the
  1607.      Unix-style "more" command), without writing it to a file, use 
  1608.      the -m (more) option while decrypting:
  1609.           pgp -m ciphertextfile
  1610.       
  1611.      To specify that the recipient's decrypted plaintext will be shown
  1612.      ONLY on her screen and cannot be saved to disk, add the -m option:
  1613.           pgp -steam message.txt her_userid
  1614.       
  1615.      To recover the original plaintext filename while decrypting, add 
  1616.      the -p option:
  1617.           pgp -p ciphertextfile
  1618.       
  1619.      To use a Unix-style filter mode, reading from standard input and
  1620.      writing to standard output, add the -f option:
  1621.           pgp -feast her_userid <inputfile >outputfile
  1622.       
  1623.       
  1624.       
  1625.  
  1626.  
  1627.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 30
  1628.  
  1629.  
  1630.  
  1631.  
  1632.       
  1633.      Legal Issues
  1634.      ============
  1635.       
  1636.      For detailed information on PGP licensing, distribution, copyrights,
  1637.      patents, trademarks, liability limitations, and export controls, see
  1638.      the "Legal Issues" section in the "PGP User's Guide, Volume II: 
  1639.      Special Topics".
  1640.       
  1641.      PGP uses a public key algorithm claimed by U.S. patent #4,405,829. 
  1642.      The exclusive rights to this patent are held by a California company
  1643.      called Public Key Partners, and you may be infringing this patent if
  1644.      you use PGP in the USA.  This is explained in the Volume II manual.
  1645.       
  1646.      PGP is "guerrilla" freeware, and I don't mind if you distribute it
  1647.      widely.  Just don't ask me to send you a copy.  Instead, you can get
  1648.      it yourself from many BBS systems and a number of Internet FTP sites.  
  1649.       
  1650.       
  1651.       
  1652.      Acknowledgments
  1653.      ================
  1654.       
  1655.      I'd like to thank the following people for their contributions to the
  1656.      creation of Pretty Good Privacy.  Although I was the author of PGP
  1657.      version 1.0, major parts of later versions of PGP were implemented by
  1658.      an international collaborative effort involving a large number of
  1659.      contributors.
  1660.       
  1661.      Branko Lankester, Hal Finney and Peter Gutmann all contributed a
  1662.      huge amount of time in adding features for PGP 2.0, and ported it to
  1663.      Unix variants.  Hal and Branko made Herculean efforts in implementing
  1664.      my new key management protocols.  
  1665.       
  1666.      Hugh Kennedy ported it to VAX/VMS, Lutz Frank ported it to the Atari
  1667.      ST, and Cor Bosman ported it to the Commodore Amiga.
  1668.       
  1669.      Translation of PGP into foreign languages was done by Jean-loup
  1670.      Gailly in France, Armando Ramos in Spain, Felipe Rodriquez Svensson
  1671.      and Branko Lankester in The Netherlands, Miguel Angel Gallardo in
  1672.      Spain, Lutz Frank and Hugh Kennedy in Germany, David Vincenzetti in
  1673.      Italy, Harry Bush and Maris Gabalins in Latvia, Zygimantas Cepaitis
  1674.      in Lithuania, Peter Suchkow and Andrew Chernov in Russia, and
  1675.      Alexander Smishlajev in Esperantia.  Peter Gutmann offered to
  1676.      translate it into New Zealand English, but we finally decided PGP
  1677.      could get by with US English. 
  1678.       
  1679.      Jean-loup Gailly, Mark Adler, and Richard B. Wales published the ZIP
  1680.      compression code, and granted permission for inclusion into PGP.  The
  1681.      MD5 routines were developed and placed in the public domain by Ron
  1682.      Rivest.  The IDEA(tm) cipher was developed by Xuejia Lai and James L.
  1683.      Massey at ETH in Zurich, and is used in PGP with permission from
  1684.      Ascom-Tech AG. 
  1685.       
  1686.      Charlie Merritt originally taught me how to do decent multiprecision 
  1687.      arithmetic for public key cryptography, and Jimmy Upton contributed a
  1688.  
  1689.  
  1690.      PGPDOC1.TXT          Thursday, September  3, 1992 2:07 am           Page 31
  1691.  
  1692.  
  1693.  
  1694.  
  1695.      faster multiply/modulo algorithm.  Zhahai Stewart contributed a lot
  1696.      of useful ideas on PGP file formats and other stuff, including having
  1697.      more than one user ID for a key.  I heard the idea of introducers
  1698.      from Whit Diffie.  Kelly Goen did most of the work for the initial
  1699.      electronic publication of PGP 1.0.
  1700.       
  1701.       
  1702.       
  1703.      About the Author
  1704.      ================
  1705.       
  1706.      Philip Zimmermann is a software engineer consultant with 18 years
  1707.      experience, specializing in embedded real-time systems, cryptography,
  1708.      authentication, and data communications.  Experience includes design
  1709.      and implementation of authentication systems for financial
  1710.      information networks, network data security, key management
  1711.      protocols, embedded real-time multitasking executives, operating
  1712.      systems, and local area networks.  
  1713.       
  1714.      Custom versions of cryptography and authentication products and 
  1715.      public key implementations such as the NIST DSS are available from
  1716.      Zimmermann, as well as custom product development services.  His
  1717.      consulting firm's address is: 
  1718.       
  1719.      Boulder Software Engineering
  1720.      3021 Eleventh Street
  1721.      Boulder, Colorado 80304  USA
  1722.      Phone 303-541-0140 (voice or FAX)  (10:00am - 7:00pm Mountain Time)
  1723.      Internet:  prz@sage.cgd.ucar.edu
  1724.       
  1725.       
  1726.       
  1727.